package com.syp.auth.service.base;

import java.util.List;

import com.syp.auth.domain.enums.ResourceTypeEnum;
import com.syp.auth.domain.vo.ResourceVo;
import com.syp.auth.domain.vo.easyui.TreeNode;

/**
 * 资源业务处理接口
 * 
 * @author syp
 */
public interface ResourceServiceI {

	/**
	 * @desc 获取一个资源对象
	 * @param resourceVo
	 * @return
	 */
	public ResourceVo get(Long id);

	/**
	 * @desc 添加资源
	 * @param resourceVo
	 *            资源对象
	 */
	public void add(ResourceVo resourceVo);

	/**
	 * @desc 编辑资源
	 * @param resourceVo
	 *            资源对象
	 */
	public void edit(ResourceVo resourceVo);

	/**
	 * @desc 删除资源
	 * @param id
	 *            资源id
	 */
	public void delete(Long id);

	/**
	 * 生成资源列表树
	 * 
	 * @param root
	 * @param limitResIdList
	 * @param resType
	 * @param recursive
	 * @return
	 */
	public ResourceVo treegrid(ResourceVo root, List<Long> limitResIdList, ResourceTypeEnum resType, boolean recursive);

	/**
	 * 生成菜单树
	 * 
	 * @param root
	 * @param limitResIdList
	 * @param guser
	 * @param recursive
	 * @return
	 */
	public TreeNode menuTree(TreeNode root, List<Long> limitResIdList, boolean recursive);

	/**
	 * 生成资源树
	 * 
	 * @param root
	 * @param limitResIdList
	 * @param resType
	 * @param recursive
	 * @return
	 */
	public TreeNode tree(TreeNode root, List<Long> limitResIdList, ResourceTypeEnum resType, boolean recursive);

	/**
	 * @desc 校验资源代码是否唯一
	 * @param resourceVo
	 * @return
	 */
	public boolean checkResNameUnique(String resCode);

}
